package cn.baiweigang.uu.model;

import cn.baiweigang.uu.enums.ContractCodeEnum;
import cn.baiweigang.uu.enums.MarginModeEnum;
import cn.baiweigang.uu.enums.PeriodEnum;
import cn.baiweigang.uu.enums.SymbolEnum;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * 账户信息 包括合约、持仓等信息
 */
@Data
public class AccountInfo {
    private String accountName;
    //    private String accountId;
    private String marginAccount;//保证金账户 BTC-USDT
    private ContractCodeEnum contractCode;//合约代码
    private SymbolEnum symbol;//交割合约账户 币
    private long ts;//更新时间
    private Integer leverRate;//杠杆系数
    private BigDecimal marginBalance;//账户余额
    private BigDecimal marginFrozen;//冻结保证金
    private BigDecimal marginPosition;//持仓保证金（当前持有仓位所占用的保证金）
    private BigDecimal marginAvailable;//可用保证金
    private BigDecimal withdrawAvailable;//可划转数量
    private BigDecimal marginStatic;//静态权益

    private BigDecimal riskRate;//倍数
    private BigDecimal liquidationPrice;//预估强平价

    private List<PositionInfo> positionInfo;//持仓信息


    private MarginModeEnum marginMode;//保证金模式
    private BigDecimal contractSize;//合约面值，即1张合约对应多少标的币种（如BTC-USDT合约则面值单位就是BTC）0.1，0.01...
    private BigDecimal priceTick;//合约价格最小变动精度	0.001, 0.01...
    private long maxVolume;//允许的最大合约张数
    private long openVolume;//一次开仓张数
    private double forcedCloseUsd;//允许的 标的价格USD变化xx 引起强平风险
    private String strategyName;//使用的策略名称 类名
    private boolean available;//账号是否可用  如果是false 则停止自动化交易
    private PeriodEnum period;//使用的行情周期

}
